package com.lonely.fx.bind;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;


/**
 * @date: 2022-07-23 17:33
 * @author: ztkj-hzb
 * @description: 单向绑定
 **/
public class BindSettingMain extends Application {

    public static void main(String[] args) {
        launch(args);
    }


    /**
     *
     */
    @Override
    public void start(Stage primaryStage) throws Exception {

        HBox hBox = new HBox();
        hBox.setSpacing(20);
        hBox.setAlignment(Pos.CENTER);

        TextField textField = new TextField();
        TextField textField2 = new TextField();


        //设置 textfield 和 textfields2 数据同步

        //第一种方法
        /*textField.textProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                textField2.setText(newValue);
            }
        });*/

        //第二种方法  设置 textField2 的值 同 textField绑定，textField2 不能单独设置
        textField2.textProperty().bind(textField.textProperty());

        System.out.println("textField2 的 textProperty 是否存在绑定关系" + textField2.textProperty().isBound());

        hBox.getChildren().addAll(textField, textField2);
        primaryStage.setScene(new Scene(hBox));
        primaryStage.setWidth(600);
        primaryStage.setHeight(500);
        primaryStage.show();
    }
}
